#!/bin/bash

# 设置版本号
VERSION="1.0.0"
PROJECT_NAME="code_env_space"

# 创建打包目录
echo "创建打包目录..."
mkdir -p dist

# 清理旧的打包文件
echo "清理旧的打包文件..."
rm -rf dist/*

# 创建必要的目录
echo "创建必要的目录..."
mkdir -p dist/$PROJECT_NAME
mkdir -p dist/$PROJECT_NAME/logs
mkdir -p dist/$PROJECT_NAME/media
mkdir -p dist/$PROJECT_NAME/static
mkdir -p dist/$PROJECT_NAME/nginx

# 复制项目文件
echo "复制项目文件..."
cp -r \
    manage.py \
    requirements.txt \
    Dockerfile \
    docker-compose.yml \
    code_env_space \
    carts \
    courses \
    home \
    orders \
    payments \
    search \
    users \
    utils \
    nginx \
    dist/$PROJECT_NAME/

# 创建示例.env文件
echo "创建示例.env文件..."
cat > dist/$PROJECT_NAME/.env.example << EOL
# Django设置
DEBUG=0
SECRET_KEY=your-secret-key-here
ALLOWED_HOSTS=47.109.44.79

# 数据库设置
MYSQL_DATABASE=code_env_space
MYSQL_USER=code_env_space
MYSQL_PASSWORD=your-db-password
MYSQL_ROOT_PASSWORD=your-root-password
DB_HOST=db
DB_PORT=3306

# Redis设置
REDIS_HOST=redis
REDIS_PORT=6379

# Elasticsearch设置
ELASTICSEARCH_HOST=elasticsearch
ELASTICSEARCH_PORT=9200

# 微信支付设置
WXPAY_APP_ID=your-app-id
WXPAY_MCH_ID=your-mch-id
WXPAY_API_KEY=your-api-key
WXPAY_NOTIFY_URL=your-notify-url
EOL

# 创建README文件
echo "创建README文件..."
cat > dist/$PROJECT_NAME/README.md << EOL
# 码境空间在线教育平台

## 部署步骤

1. 复制 .env.example 为 .env 并修改配置：
   \`\`\`bash
   cp .env.example .env
   vim .env   # 修改配置
   \`\`\`

2. 创建必要的目录：
   \`\`\`bash
   mkdir -p logs media static
   \`\`\`

3. 构建和启动服务：
   \`\`\`bash
   # 构建镜像
   docker-compose build

   # 启动所有服务
   docker-compose up -d

   # 创建超级用户
   docker-compose exec web python manage.py createsuperuser

   # 初始化Elasticsearch索引
   docker-compose exec web python manage.py search_index --rebuild
   \`\`\`

4. 查看服务状态：
   \`\`\`bash
   # 查看所有容器状态
   docker-compose ps

   # 查看服务日志
   docker-compose logs -f
   \`\`\`

## 维护命令

1. 重启服务：
   \`\`\`bash
   docker-compose restart
   \`\`\`

2. 停止服务：
   \`\`\`bash
   docker-compose down
   \`\`\`

3. 备份数据库：
   \`\`\`bash
   docker-compose exec db mysqldump -u root -p\${MYSQL_ROOT_PASSWORD} \${MYSQL_DATABASE} > backup.sql
   \`\`\`

4. 恢复数据库：
   \`\`\`bash
   docker-compose exec -T db mysql -u root -p\${MYSQL_ROOT_PASSWORD} \${MYSQL_DATABASE} < backup.sql
   \`\`\`

## 版本信息

- 版本号：$VERSION
- 更新日期：$(date +"%Y-%m-%d")

## 注意事项

1. 生产环境部署前需要修改：
   - SECRET_KEY
   - ALLOWED_HOSTS
   - 数据库密码
   - 微信支付配置
   - 域名配置

2. 安全建议：
   - 使用HTTPS
   - 设置强密码
   - 限制端口访问
   - 配置防火墙
   - 定期备份数据
EOL

# 打包文件
echo "打包文件..."
cd dist
tar -czf ${PROJECT_NAME}-${VERSION}.tar.gz $PROJECT_NAME

# 清理临时文件
echo "清理临时文件..."
rm -rf $PROJECT_NAME

echo "打包完成！文件位置：dist/${PROJECT_NAME}-${VERSION}.tar.gz" 